package hygprs

/*
通讯系统内部使用的协议
*/

// 通讯服务器内部(0xc0)使用的包类型
const (
	PackageRegister  = 0x01 // 注册
	PackageKeepAlive = 0x02 // 保活
	PackageForward   = 0x11 // 转发包
	PackageEvent     = 0x21 // 事件
)

// 连接到通讯的客户端的预置角色
type Role byte

const (
	RoleNull             Role = 0x00 // 没有预置角色
	RoleBus                   = 0x01 // 车载端(一体机、POS机)
	RoleScheduleServer        = 0x11 // 调度服务器
	RoleScheduleClient        = 0x12 // 调度客户端
	RoleIntercomServer        = 0x22 // 语音对讲服务器
	RoleVideoClient           = 0x23 // 视频客户端
	RoleUpdateProgram         = 0x31 // 升级程序
	RoleBlacklistProgram      = 0x41 // 黑名单下载程序
	RoleEncryptor             = 0x42 // 加密机
	RoleThirdParty            = 0x43 // 数据前置服务器，与其他系统进行数据中转的服务器，比如枣庄(转发消费相关的数据)
	RolePaymentServer         = 0x44 // 交易数据解析服务器
	RoleJtt808Server          = 0x45 // 808协议解析转发服务
	RoleJt809Server           = 0x46 // 809平台解析析转发服务
)

func (r Role) String() string {
	switch r {
	case RolePaymentServer:
		return "交易数据解析服务器"
	default:
		return "其他"
	}
}

/*
APP充值->通讯服务->封装转发包->发给收费服务->取出原始数据->处理->发送转发回应包->发给通讯->拆除转发包->发送给对应的来源
*/
